Virtual repository content model

ABSTRACT

A memory for storing data for access by an application program being executed on a computer system, comprising a data structure stored in said memory, the data structure including or referring to a name, a content repository identifier, a property, a property definition, and wherein the data structure is logically part of a virtual content repository (VCR), and wherein the VCR represents at least one content repository.

CLAIM OF PRIORITY

[0001] This application claims priority from the following application,which is hereby incorporated by reference in its entirety:

[0002] SYSTEM AND METHOD FOR A VIRTUAL CONTENT REPOSITORY, U.S.Provisional Patent Application No. 60/386,487, Inventors: James Owen, etal., filed on Feb. 20, 2003. (Attorney's Docket No. BEAS-1360US0)

[0003] SYSTEMS AND METHODS FOR PORTAL AND WEB SERVER ADMINISTRATION,U.S. Provisional Patent Application No. 60/451,174, Inventors:Christopher Bales, et al., filed on Feb. 28, 2003. (Attorney's DocketNo. BEAS-1371US0)

CROSS-REFERENCE TO RELATED APPLICATIONS

[0004] This application is related to the following co-pendingapplications which are each hereby incorporated by reference in theirentirety:

[0005] FEDERATED MANAGEMENT OF CONTENT REPOSITORIES, U.S. ApplicationNo. ______, Inventors: James Owen, et al., filed on ______. (Attorney'sDocket No. BEAS-1360US1)

[0006] VIRTUAL REPOSITORY COMPLEX CONTENT MODEL, U.S. Application No.______, Inventors: James Owen, et al., filed on ______. (Attorney'sDocket No. BEAS- 1364US0)

[0007] SYSTEM AND METHOD FOR A VIRTUAL CONTENT REPOSITORY, U.S.Application No. ______, Inventors: James Owen, et al., filed on ______.(Attorney's Docket No. BEAS-1363US0)

[0008] VIRTUAL CONTENT REPOSITORY APPLICATION PROGRAM INTERFACE, U.S.Application No. ______, Inventors: James Owen, et al., filed on ______.(Attorney's Docket No. BEAS-1370US0)

[0009] SYSTEM AND METHOD FOR SEARCHING A VIRTUAL REPOSITORY CONTENT,U.S. Application No. ______, Inventor: Gregory Smith, filed on ______.(Attorney's Docket No. BEAS-1365US0)

[0010] VIRTUAL CONTENT REPOSITORY BROWSER, U.S. Application No. ______,Inventors: Jalpesh Patadia et al., filed on ______. (Attorney's DocketNo. BEAS-1362US0)

COPYRIGHT NOTICE

[0011] A portion of the disclosure of this patent document containsmaterial which is subject to copyright protection. The copyright ownerhas no objection to the facsimile reproduction by anyone of the patentdocument or the patent disclosure, as it appears in the Patent andTrademark Office patent file or records, but otherwise reserves allcopyright rights whatsoever.

FIELD OF THE DISCLOSURE

[0012] The present invention disclosure relates to content management,and in particular, a system and method for integrating disparate contentrepositories.

BACKGROUND

[0013] Content repositories manage and provide access to large datastores such as a newspaper archives, advertisements, inventories, imagecollections, etc. A content repository can be a key component of a Webapplication such as a Web portal, which must quickly serve up differenttypes of content in response to a particular user's requests. However,difficulties can arise when trying to integrate more than one vendor'scontent repository. Each may have its own proprietary applicationprogram interface (API), conventions for manipulating content, and dataformats. Performing a search across different repositories, for example,could require using completely different search mechanisms andconverting each repository's search results into a common format.Furthermore, each time a repository is added to an application, theapplication software must be modified to accommodate these differences.

BRIEF DESCRIPTION OF THE DRAWINGS

[0014]FIG. 1 is an illustration of a virtual content managementframework in one embodiment of the invention.

[0015]FIG. 2 is an illustration of functional layers in one embodimentof the invention.

[0016]FIG. 3 is an illustration of objects used in connecting arepository to a virtual content repository in one embodiment of theinvention.

[0017]FIG. 4 is an exemplary content model in one embodiment of theinvention.

[0018]FIG. 5 is an exemplary service model in one embodiment of theinvention.

[0019]FIG. 6 is an illustration of NopeOps service interaction in oneembodiment of the invention.

[0020]FIG. 7 is an illustration of a virtual content repository browserin one embodiment of the invention.

[0021]FIG. 8 is an illustration of a content editor in one embodiment ofthe invention.

[0022]FIG. 9 is an illustration of a schema editor in one embodiment ofthe invention.

[0023]FIG. 10 is an illustration of a property editor in one embodimentof the invention.

DETAILED DESCRIPTION

[0024] The invention is illustrated by way of example and not by way oflimitation in the figures of the accompanying drawings in which likereferences indicate similar elements. It should be noted that referencesto “an” or “one” embodiment in this disclosure are not necessarily tothe same embodiment, and such references mean at least one.

[0025] In the following description, various aspects of the presentinvention will be described. However, it will be apparent to thoseskilled in the art that the present invention may be practiced with onlysome or all aspects of the present invention. For purposes ofexplanation, specific numbers, materials and configurations are setforth in order to provide a thorough understanding of the presentinvention. However, it will be apparent to one skilled in the art thatthe present invention may be practiced without the specific details. Inother instances, well-known features are omitted or simplified in ordernot to obscure the present invention.

[0026] Parts of the description will be presented in data processingterms, such as data, selection, retrieval, generation, and so forth,consistent with the manner commonly employed by those skilled in the artto convey the substance of their work to others skilled in the art. Aswell understood by those skilled in the art, these quantities take theform of electrical, magnetic, or optical signals capable of beingstored, transferred, combined, and otherwise manipulated throughelectrical and/or optical components of a processor and its subsystems.

[0027] Various operations will be described as multiple discrete stepsin turn, in a manner that is most helpful in understanding the presentinvention, however, the order of description should not be construed asto imply that these operations are necessarily order dependent. Inparticular, these operations need not be performed in the order ofpresentation.

[0028] Various embodiments will be illustrated in terms of exemplaryclasses and/or objects in an object-oriented programming paradigm. Itwill be apparent to one skilled in the art that the present inventioncan be practiced using any number of different classes/objects, notmerely those included here for illustrative purposes. Furthermore, itwill also be apparent that the present invention is not limited to anyparticular software programming language or programming paradigm.

[0029]FIG. 1 is an illustration of a virtual content managementframework in one embodiment of the invention. A content repository 108is a searchable data store. Such systems can relate structured contentand unstructured content (e.g., digitally scanned paper documents,eXtensible Markup Language, Portable Document Format, Hypertext MarkupLanguage, electronic mail, images, video and audio streams, raw binarydata, etc.) into a searchable corpus. Content repositories can becoupled to or integrated with content management systems. Contentmanagement systems provide for content life cycle management (e.g.versioning), content review and approval, automatic contentclassification, event-driven content processing, process tracking andcontent delivery to other systems. For example, if a user fills out aloan application on a web portal, the web portal can forward theapplication to a content repository which, in turn, can contact a banksystem, receive notification of loan approval, update the loanapplication in the repository and notify the user by rendering theapproval information in a format appropriate for the web portal.

[0030] A virtual or federated content repository (hereinafter referredto as “VCR”) 100 is a logical representation of one or more individualcontent repositories 108 such that they appear and behave as a singlecontent repository from an application program's standpoint. This isaccomplished in part by use of an API (application program interface)104 and an SPI (service provider interface) 102. An API describes how anapplication program, library or process can interface with some programlogic or functionality. By way of a non-limiting illustration, a processcan include a thread, a server, a servlet, a portlet, a distributedobject, a web browser, or a lightweight process. An SPI describes how aservice provider (e.g., a content repository) can be integrated into asystem of some kind. SPI's are typically specified as a collection ofclasses/interfaces, data structures and functions that work together toprovided a programmatic means through which a service can be accessedand utilized. By way of a non-limiting example, APIs and SPIs can bespecified in an object-oriented programming language, such as Java™(available from Sun Microsystems, Inc. of Mountain View, Calif.) and C#(available from Microsoft Corp. of Redmond, Wash.). The API and SPI canbe exposed in a number of ways, including but not limited to staticlibraries, dynamic link libraries, distributed objects, servers,class/interface instances, etc.

[0031] In one embodiment, the API presents a unified view of allrepositories to application programs and enables them to navigate,perform CRUD (create, read, update, and delete) operations, and searchacross multiple content repositories as though they were a singlerepository. Content repositories that implement the SPI can “plug into”the VCR. The SPI includes a set of interfaces and services thatrepositories can implement and extend including schema management,hierarchy operations and CRUD operations. The API and SPI share acontent model 106 that represents the combined content of allrepositories 108 as a hierarchical namespace of nodes (or hierarchy).Given a node N, nodes that are hierarchically inferior to N are referredto as children of N whereas nodes that are hierarchically superior to Nare referred to as parents of N. The top-most level of the hierarchy iscalled the federated root. There is no limit to the depth of thehierarchy.

[0032] In one embodiment, content repositories can be children of thefederated root. Each content repository can have child nodes. Nodes canrepresent hierarchy information or content. Hierarchy nodes serve as acontainer for other nodes in the hierarchy akin to a file subdirectoryin a hierarchical file system. Content nodes can have properties. In oneembodiment, a property associates a name with a value of some kind. Byway of a non-limiting illustration, a value can be a text string, anumber, an image, an audio/visual presentation, binary data, etc. Eithertype of node can have a schema associated with it. A schema describesthe data type of one or more of a node's properties.

[0033]FIG. 2 is an illustration of functional layers in one embodimentof the invention. API 200 is layered on top of SPI 202. The SPI layerisolates direct interaction with repositories 212 from the API. In oneembodiment, this can be accomplished at run-time wherein the API librarydynamically links to or loads the SPI library. In another embodiment,the SPI can be part of a server process such that the API and the SPIcan communicate over a network. The SPI can communicate with therepositories using any number of means including, but not limited to,shared memory, remote procedure calls and/or via one or moreintermediate server processes.

[0034] Referring again to FIG. 2 and by way of a non-limiting example,content mining facilities 204, portlets 206, tag libraries 208,applications 210, and other libraries 218 can all utilize the API tointeract with a VCR. Content mining facilities can include services forautomatically extracting content from the VCR based on parameters.Portlet and Java ServerPages™ tag libraries enable portals to interactwith the VCR and surface its content on web pages. (Java ServerPages isavailable from Sun Microsystems, Inc.) In addition, application programsand other libraries can be built on top of the API.

[0035] In one embodiment, the API can include optimizations to improvethe performance of interacting with the VCR. One or more content caches216 can be used to buffer search results and recently accessed nodes.Content caches can include node caches and binary caches. A node cachecan be used to provide fast access to recently accessed nodes. A binarycache can be used to provide fast access to the data associated witheach node in a node cache. The API can also provide a configurationfacility 214 to enable applications, tools and libraries to configurecontent caches and the VCR. In one embodiment, this facility can beimplemented as a Java Management Extension (available from SunMicrosystems, Inc.). Exemplary configuration parameters are provided inTable 1. TABLE 1 Exemplary Configuration Parameters CONFIGURATIONPARAMETERS Active state for a binary cache of a repository (i.e., turnthe cache on or off). Maximum number of entries for a binary cache of arepository. Time-to-live for entries in a binary cache of a repository.Repository name. Active state for a node cache of a repository (i.e.,turn the cache on or off). Max entries for a node cache of a repository.Time-to-live for entries in a node cache of a repository. Password andusername for a repository. Read-only attribute for the repository.

[0036]FIG. 3 is an illustration of objects used in connecting arepository to a VCR in one embodiment of the invention. In oneembodiment, objects implementing API interface RepositoryManager 302 canserve as an representation of a VCR from an application program'sstandpoint. A RepositoryManager connect( ) method attempts to connectall available repositories with a current user's credentials to the VCR.By way of a non-limiting example, credentials in one embodiment canbased on the Java™ Authentication and Authorization Service (availablefrom Sun Microsystems, Inc.). Those of skill in the art will recognizethat many authorization schemes are possible without departing from thescope and spirit of the present embodiment. Each available contentrepository is represented by an SPI Repository object 306-310. TheRepositoryManager object invokes a connect( ) method on a set ofRepository objects. In one embodiment, a RepositorySession object (notshown) can be instantiated for each content repository to which aconnection is attempted. In one embodiment, the RepositoryManagerconnect( ) method can return an array of the RepositiorySessions to theapplication program, one for each repository for which a connection wasattempted. Any error in the connection procedure can be described by theRepositorySession object's state. In another embodiment, theRepositoryManager connect( ) method can connect to a specific repositoryusing a current user's credentials and a given repository name. In oneembodiment, the name of a repository can be a URI (uniform resourceidentifier).

[0037]FIG. 4 is an exemplary content model in one embodiment of theinvention. The content model is shared between the API and the SPI. Eachbox in FIG. 2 represents a class or an interface. Hollow tipped arrowsconnecting boxes indicate inheritance relationships wherein theclass/interface from which the arrows emanate inherit from theclass/interface to which the arrows point. Solid tipped arrows indicatethat the objects of the class/interface from which the arrows emanatecan contain or have references (e.g., pointers or addresses) to objectsof the class/interface to which the arrows point. In one embodiment,each object in a VCR has an identifier that uniquely identifies it. Anidentifier can be represented by an ID 400 (or id). An id can containthe name of a content repository and a unique id provided to it by therepository. In one embodiment, the id class/interface can be madeavailable through a common super class/interface 414 that can provideservices such as serialization, etc.

[0038] In one embodiment, content and hierarchy nodes can be representedby a Node 402 (or node). A node has a name, an id, and can also includea path that uniquely specifies an the node's location in the VCRhierarchy. By way of a non-limiting example, the path can be in aUnix-like directory path format such as ‘/a/b/c’ where ‘/’ is afederated root, ‘a’ is a repository, ‘b’ is a node in the ‘a’repository, and ‘c’ is the node's name. The Node class provides methodsby with a node's parent and children can be obtained. This is useful forapplications and tools that need to traverse the VCR hierarchy (e.g.,browsers). Nodes can be associated with zero or more Property 404objects (or properties). A property can have a name and zero or morevalues 406. In one embodiment, a property's name is unique relative tothe node to which the property is associated. A Value 406 can representany value, including but not limited to binary, Boolean, date/time,floating point, integer or string values. If a property has more thanone value associated with it, it is referred to as “multi-valued”.

[0039] A node's properties can be described by a schema. A schema can bereferred to as “metadata” since it does not constitute the content (or“data”) of the VCR per se. Schemas can be represented by an ObjectClass408 object and zero or more PropertyDefinition 410 objects. AnObjectClass has a schema name that uniquely identifies it within acontent repository. A node can refer to a schema using the ObjectClassname. In another embodiment, a content node can define its own schema byreferencing an ObjectClass object directly. In one embodiment, there isone PropertyDefinition object for each of a node's associated Propertyobjects. PropertyDefinition objects define the shape or type ofproperties. Schemas can be utilized by repositories and tools thatoperate on VCRs, such as hierarchical browsers. By way of a non-limitingexample, a hierarchy node's schema could be used to provide informationregarding its children or could be used to enforce a schema on them. Byway of a further non-limiting example, a VCR browser could use a contentnode's schema in order to properly display the node's values.

[0040] In one embodiment, a PropertyDefinition can have a name and candescribe a corresponding property's data type (e.g., binary, Boolean,string, double, calendar, long, reference to an external data source,etc.), whether it is required, whether it is read-only, whether itprovides a default value, and whether it specifies a property choicetype. A property choice can indicate if a property is a singleunrestricted value, a single restricted value, a multiple unrestrictedvalue, or a multiple restricted value. Properties that are single haveonly one value whereas properties that are multiple can have more thanone value. If a property is restricted, its value(s) are chosen from afinite set of values. But if a property is unrestricted, any value(s)can be provided for it. PropertyChoice objects 412 can be associatedwith a PropertyDefinition object to define a set of value choices in thecase where the PropertyDefinition is restricted. A choice can bedesignated as a default value, but only one choice can be a default fora given PropertyDefinition.

[0041] A PropertyDefinition object may also be designated as a primaryproperty. By way of a non-limiting example, when a schema is associatedwith a node, the primary property of a node can be considered itsdefault content. The isprimary( ) method of the PropertyDefinition classreturns true if a PropertyDefinition object is the primaryPropertyDefinition. By way of a further non-limiting example, if a nodecontained a binary property to hold an image, it could also contain asecond binary property to represent a thumbnail view of the image. Ifthe thumbnail view was the primary property, software applications suchas browser could display it by default.

[0042]FIG. 5 is an exemplary service model in one embodiment of theinvention. Each box in FIG. 5 represents a class or an interface. Adashed arrow indicates that the interface from which the arrow emanatescan produce at run-time objects implementing the classes to which thearrow points. A content repository's implementation of the SPI isresponsible for mapping operations on the content model to theparticulars of a given content repository. Repository interface 500represents a content repository and facilitates connecting to it. TheRepository has a connect( ) method that returns an object of type Ticket502 (or ticket) if a user is authenticated by the repository. In oneembodiment, tickets are intended to be light-weight objects. As such,one or more may be created and possibly cached for each client/softwareapplication accessing a given repository.

[0043] A ticket can utilize a user's credentials to authorize a service.In one embodiment, a ticket can be the access point for the followingservice interfaces: NodeOps 508, ObjectClassOps 506, and SearchOps 510.An application program can obtain objects that are compatible with theseinterfaces through the API RepositoryManager class. The NodeOpsinterface provides CRUD methods for nodes in the VCR. Nodes can beoperated on based on their id or through their path in the nodehierarchy. Table 2 summarizes NodeOp class functionality exposed in theAPI. TABLE 2 NodeOps Functionality NodeOps FUNCTIONALITY Update a givennode's properties and property definitions. Copy a given node to a newlocation in a given hierarchy along with all its descendants. Create anew content node underneath a given parent. Create a new hierarchy nodeunderneath a given parent. Perform a full cascade delete on a givennode. Retrieve all the nodes in a given node's path including itself.Retrieve content node children for the given parent node. Retrievehierarchy node children for the given parent node. Retrieve a node basedon its ID. Retrieve a node based on its path. Retrieve the childrennodes for the given hierarchy node. Retrieve all the nodes with a givenname. Retrieve the Binary data for given node and property ids. Moves anode to a new location in the hierarchy along with all its descendants.Remove the ObjectClass from a given node. Renames a given node andimplicitly all of its descendants paths.

[0044]FIG. 6 is an illustration of NopeOps service interaction in oneembodiment of the invention. Application 600 utilizes a NodeOps object602 provided by the API which in turn utilizes one or more NodeOpsobjects 606-610 provided by an SPI Ticket. Each repository 612-616 isrepresented by a NodeOps object. When the API NodeOps 602 receives arequest to perform an action, it maps the request to one or more SPINodeOps objects 606-610 which in turn fulfill the request using theirassociated repositories. In this way, applications and librariesutilizing the API see a the VCR rather than individual contentrepositories.

[0045] As with the NodeOps service, there is one SPI ObjectClassOpsobject per repository and a single API ObjectClassOps object. The APIObjectClassOps object maps requests to one or more SPI ObjectClassOpswhich in turn fulfill the requests using their respective repositories.Through this service, ObjectClass and PropertyDefinition objects can beoperated on based on their id or through their path in the nodehierarchy. Table 3 summarizes ObjectClassOps class functionality exposedin the API. TABLE 3 ObjectClassOps Functionality ObjectClassOpsFUNCTIONALITY Create an ObjectClass, create PropertyDefinition(s) andassociate them with the ObjectClass. Add a given PropertyDefinition toan ObjectClass. Delete an ObjectClass. Delete a PropertyDefinition.Retrieve an ObjectClass with a given id. Retrieve all ObjectClass(es)available for all content repositories a given user is currentlyauthenticated for. Retrieve all of the ObjectClass(es) available for agiven content repository. Retreive a BinaryValue for the givenPropertyChoice. Retreive a PropertyDefinition. Retrieve allPropertyDefinitions for the given ObjectClass. Rename the givenObjectClass. Updates the given PropertyDefinition.

[0046] As with the NodeOps and ObjectClassOps services, there is one SPISearchOps object per repository and a single API SearchOps object. TheAPI SearchOps object maps requests to one or more SPI SearchOps which inturn fulfill the requests using their respective repositories. Amongother things, the SearchOps services allows applications and librariesto search for properties and/or values throughout the entire VCR. In oneembodiment, searches can be conducted across all Property, Value,BinaryValue, ObjectClass, PropertyChoice and PropertyDefinitions objectsin the VCR. Search expressions can include but are not limited to one ormore logical expressions, Boolean operators, nested expressions, objectnames, function calls, mathematical functions, mathematical operators,string operators, image operators, and Structured Query Language (SQL).Table 4 summarizes SearchOps class functionality exposed in the API.TABLE 4 Exemplary SearchOps Functionality SearchOps FUNCTIONALITYFlushes all nodes inside a content cache. Flushes a specified node froma content cache. Performs a search with the given search expression.Updates a content cache's attributes. Updates a content cache's activestate. Updates a content cache's max entries. Updates a content cache'stime-to-live attribute.

[0047]FIG. 7 is an illustration of a VCR browser in one embodiment ofthe invention. A VCR browser 700 can include one or more tools builtatop the API and has a graphical user interface (GUI). In oneembodiment, the browser can be rendered using Microsoft Windows®(available from Microsoft, Corp.). In yet another embodiment, thebrowser can be implemented as a web portal. Browser window 700 includesa navigation pane 702 and a context-sensitive editor window 704. Thenavigation pane displays a hierarchical representation of a VCR havingone content repository (“BEA Repository”) which itself has fourhierarchy nodes (“HR”, “Images”, “Marketing”, and “Products”). Selectionof a hierarchy node can cause its children to be rendered beneath it inthe navigation pane and cause an appropriate editor to be displayed inthe editor window. Selection may be accomplished by any means, includingbut not limited to mouse or keyboard input, voice commands, physicalgestures, etc. In this case, the VCR 706 is selected and a repositoryconfiguration editor is displayed in the editor window. The editorallows a user to change the configuration parameters (see Table 1) ofthe VCR. In one embodiment, configuration parameters are manipulated viaJava Management Extensions (see FIG. 1).

[0048]FIG. 8 is an illustration of a content editor in one embodiment ofthe invention. Navigation pane 802 is in “content” mode 812 such that itselectively filters out nodes that define only schemas. Content node 806(“Laptop”) has been selected. Node 806 is a child of hierarchy node“Products”, which itself is a child of repository “BEA Repository”.Selection of node 806 causes a corresponding content node editor to berendered in editor window 804. The editor displays the current valuesfor the selected node. The content type 814 indicates that the schemafor this node is named “product”. In this example, the node has fiveproperties: “Style”, “Description”, “Color”, “SKU” and “Image”. A useris allowed to change the value associated with these properties andupdate the VCR (via the update button 808), or remove the node from theVCR (via the remove button 810).

[0049]FIG. 9 is an illustration of a schema editor in one embodiment ofthe invention. Navigation pane 902 is in “type” mode 910 such that itonly displays nodes that have schemas but no content. Schema node 906(“product”) has been selected. Node 906 is a child of repository “BEARepository”. Selection of node 906 causes a corresponding schema editorto be rendered in editor window 904. The editor displays the currentschema for the selected node (e.g., derived from ObjectClass,PropertyDefinition, PropertyChoice objects). In this example, the nodehas five property definitions: “Style”, “Description”, “Color”, “SKU”and “Image”. For each property, the editor displays an indication ofwhether it is the primary property, its data type, its default value,and whether it is required. A property can be removed from a schema byselecting the property's delete button 912. A property can be added byselecting the “add property” button 908. A property's attributes can bechanged by selecting its name 914 in the editor window or the navigationpane 906 (see FIG. 10).

[0050]FIG. 10 is an illustration of a property editor in one embodimentof the invention. The schema named “product” is being edited. Schemaproperties definitions are listed beneath their schema name in thenavigation pane 1002. Schema property 1008 (“color”) has been selected.The editor window 1004 displays the property's current attributes. Thename of the attribute (e.g., “color”), whether the attribute is requiredor not, whether it is read-only, whether it is the primary property, itsdata type, default value(s), and whether the property is single/multiplerestricted/unrestricted can be modified. Changes to the a property'sattributes can be saved by selecting the update button 1006.

[0051] One embodiment may be implemented using a conventional generalpurpose or a specialized digital computer or microprocessor(s)programmed according to the teachings of the present disclosure, as willbe apparent to those skilled in the computer art. Appropriate softwarecoding can readily be prepared by skilled programmers based on theteachings of the present disclosure, as will be apparent to thoseskilled in the software art. The invention may also be implemented bythe preparation of integrated circuits or by interconnecting anappropriate network of conventional component circuits, as will bereadily apparent to those skilled in the art.

[0052] One embodiment includes a computer program product which is astorage medium (media) having instructions stored thereon/in which canbe used to program a computer to perform any of the features presentedherein. The storage medium can include, but is not limited to, any typeof disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive,and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs,flash memory devices, magnetic or optical cards, nanosystems (includingmolecular memory ICs), or any type of media or device suitable forstoring instructions and/or data.

[0053] Stored on any one of the computer readable medium (media), thepresent invention includes software for controlling both the hardware ofthe general purpose/specialized computer or microprocessor, and forenabling the computer or microprocessor to interact with a human user orother mechanism utilizing the results of the present invention. Suchsoftware may include, but is not limited to, device drivers, operatingsystems, execution environments/containers, and user applications.

[0054] The foregoing description of the preferred embodiments of thepresent invention has been provided for the purposes of illustration anddescription. It is not intended to be exhaustive or to limit theinvention to the precise forms disclosed. Many modifications andvariations will be apparent to the practitioner skilled in the art.Embodiments were chosen and described in order to best describe theprinciples of the invention and its practical application, therebyenabling others skilled in the art to understand the invention, thevarious embodiments and with various modifications that are suited tothe particular use contemplated. It is intended that the scope of theinvention be defined by the following claims and their equivalents.

What is claimed is:
 1. A memory for storing data for access by anapplication program being executed on a computer system, comprising: adata structure stored in said memory, the data structure including orreferring to: a name; a content repository identifier; a property; aproperty definition; and wherein the data structure is logically part ofa virtual content repository (VCR), and wherein the VCR represents atleast one content repository.
 2. The memory of claim 1 wherein thecontent repository identifier comprises: a repository name; and acontent identifier that is unique for the content repository.
 3. Thememory of claim 1, further comprising: a reference to a parent datastructure.
 4. The memory of claim 1 wherein: a property is anassociation between a name and at least one value; and wherein the atleast one value can be stored in one of the at least one contentrepositories.
 5. The memory of claim 4 wherein: the at least one valuecan be a text string, a number, an image, an audio/visual presentation,or binary data.
 6. The memory of claim 1 wherein: the propertydefinition can specify at least one of the following for the property:property choices; a reference; a data type; whether the property ismandatory; whether the property is multi-valued; whether the property isprimary; whether the property is read-only; and whether the property isrestricted.
 7. The memory of claim 1 wherein: the data structure ishierarchically related to other data structures and the at least onecontent repository.
 8. The memory of claim 7 wherein: the data structureis hierarchically inferior to the at least one content repository.
 9. Acomputer readable medium containing a data structure for representinginformation in a virtual content repository (VCR), said data structurecomprising: a name; a content repository identifier; a property; aproperty definition associated with the property; and wherein the datastructure is logically part of the VCR, and wherein the VCR representsat least one content repository.
 10. The computer readable medium ofclaim 9 wherein the content repository identifier comprises: arepository name; and a content identifier that is unique for the contentrepository.
 11. The computer readable medium of claim 9, furthercomprising: a reference to a parent data structure.
 12. The computerreadable medium of claim 9 wherein: a property is an association betweena name and at least one value; and wherein the at least one value can bestored in one of the at least one content repositories.
 13. The computerreadable medium of claim 12 wherein: the at least one value can be atext string, a number, an image, an audio/visual presentation, or binarydata.
 14. The computer readable medium of claim 9 wherein: the propertydefinition can specify at least one of the following for a property:property choices; a reference; a data type; whether the property ismandatory; whether the property is multi-valued; whether the property isprimary; whether the property is read-only; and whether the property isrestricted.
 15. The computer readable medium of claim 9 wherein: thedata structure is hierarchically related to other data structures andthe at least one content repository.
 16. The computer readable medium ofclaim 15 wherein: the data structure is hierarchically inferior to theat least one content repository.
 17. A computer data signal embodied ina transmission medium, comprising: a segment including a name; a segmentincluding a content repository identifier; a segment including aproperty; a segment including a property definition; and wherein thesegments can be combined to form a data structure that is logically partof a virtual content repository (VCR), and wherein the VCR represents atleast one content repository.
 18. The data signal of claim 17 whereinthe content repository identifier comprises: a repository name; and acontent identifier that is unique for the content repository.
 19. Thedata signal of claim 17, further comprising: a segment including areference to a parent data structure.
 20. The data signal of claim 17wherein: a property is an association between a name and at least onevalue; and wherein the at least one value can be stored in one of the atleast one content repositories.
 21. The data signal of claim 20 wherein:the at least one value can be a text string, a number, an image, anaudio/visual presentation, or binary data.
 22. The data signal of claim17 wherein: the property definition can specify at least one of thefollowing for the property: property choices; a reference; a data type;whether the property is mandatory; whether the property is multi-valued;whether the property is primary; whether the property is read-only; andwhether the property is restricted.
 23. The data signal of claim 17wherein: the data structure is hierarchically related to other datastructures and the at least one content repository.
 24. The data signalof claim 23 wherein: the data structure is hierarchically inferior tothe at least one content repository.
 25. A memory for storing data foraccess by an application program being executed on a computer system,comprising: a first object to provide a first group of services relatedto interacting with a hierarchical namespace; a second object to providea second group of services related to associating information with thefirst object; a third object to provide a third group of servicesrelated to describing attributes of the second object; wherein the firstobject is logically part of a virtual content repository (VCR), andwherein the VCR represents at least one content repository.
 26. Thememory of claim 25 wherein the first group of services comprises: firstfunctions that enable associating the first object with a location inthe namespace.
 27. The memory of claim 25 wherein the second group ofservices comprises: second functions that enable creating, reading,updating and deleting the information.
 28. The memory of claim 25wherein the third group of services comprises: third functions thatenable specifying at least one of the following for the second object:information choices; a reference; an information type; whether theinformation is mandatory; whether the information is multi-valued;whether the information is primary; whether the information isread-only; and whether the information is restricted.
 29. The memory ofclaim 25 further comprising: a fourth object to specify a location ofthe first object in the namespace.
 30. The memory of claim 29 whereinthe fourth object includes: a content repository name; and a contentidentifier that is unique for the content repository.
 31. The memory ofclaim 25 wherein the first object includes: a reference to a parentobject.
 32. The memory of claim 25, further comprising: a fifth objectto provide a fifth set of services related to searching the VCR;
 33. Thememory of claim 25 wherein: the second object associates a name and atleast one value; and wherein the at least one value can be stored in oneof the at least one content repository.
 34. The memory of claim 33wherein: the at least one value can be a text string, a number, animage, an audio/visual presentation, or binary data.
 35. The memory ofclaim 25 wherein: the first object is hierarchically related to otherobjects and the at least one content repository.
 36. The memory of claim25 wherein: there is no second object.
 37. The memory of claim 25,further comprising: a sixth object to provide a sixth group of servicesrelated to configuring the VCR.
 38. A computer data signal embodied in atransmission medium, comprising: a segment including a first object toprovide a first group of services related to interacting with ahierarchical namespace; a segment including a second object to provide asecond group of services related to associating information with thefirst object; a segment including a third object to provide a thirdgroup of services related to describing attributes of the second object;wherein the first object is logically part of a virtual contentrepository (VCR), and wherein the VCR represents at least one contentrepository.
 39. The computer data signal 38 wherein the first group ofservices comprises: first functions that enable associating the firstobject with a location in the namespace.
 40. The computer data signal 38wherein the second group of services comprises: second functions thatenable creating, reading, updating and deleting the information.
 41. Thecomputer data signal 38 wherein the third group of services comprises:third functions that enable specifying at least one of the following forthe second object: information choices; a reference; an informationtype; whether the information is mandatory; whether the information ismulti-valued; whether the information is primary; whether theinformation is read-only; and whether the information is restricted. 42.The computer data signal 38 further comprising: a segment including afourth object to specify a location of the first object in thenamespace.
 43. The computer data signal 42 wherein the fourth objectincludes: a content repository name; and a content identifier that isunique for the content repository.
 44. The computer data signal 38wherein the first object includes: a reference to a parent object. 45.The computer data signal 38, further comprising: a fifth object toprovide a fifth set of services related to searching the VCR;
 46. Thecomputer data signal 38 wherein: the second object associates a name andat least one value; and wherein the at least one value can be stored inone of the at least one content repository.
 47. The computer data signal46 wherein: the at least one value can be a text string, a number, animage, an audio/visual presentation, or binary data.
 48. The computerdata signal 38 wherein: the first object is hierarchically related toother objects and the at least one content repository.
 49. The computerdata signal 38 wherein: there is no second object.
 50. The computer datasignal 38, further comprising: a sixth object to provide a sixth groupof services related to configuring the VCR.